Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units (host adapters), disk drives, and disk interface units (disk adapters). Such storage devices are provided, for example, by EMC Corporation of Hopkinton, Mass. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and the storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units. The logical disk units may or may not correspond to the actual disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
In some instances, it may be desirable to copy data from one storage device to another. For example, if a host writes data to a first storage device, it may be desirable to copy that data to a second storage device provided in a different location so that if a disaster occurs that renders the first storage device inoperable, the host (or another host) may resume operation using the data of the second storage device. Such a capability is provided, for example, by a Remote Data Facility (RDF) product, such as a Symmetrix Remote Data Facility (SRDF) product, provided by EMC Corporation of Hopkinton, Mass. With RDF, a first storage device, denoted as the “primary storage device” (or “R1”), is coupled to the host. One or more other storage devices, called “secondary storage devices” (or “R2”), receive copies of the data that is written to the primary storage device by the host. The host may interact directly with the primary storage device, but any data changes made to the primary storage device are automatically provided to the one or more secondary storage devices using RDF. The primary and secondary storage devices may be connected by a data link, such as an ESCON link, a Fibre Channel link, and/or a Gigabit Ethernet link. The RDF functionality may be facilitated with a remote adapter (RA) provided at each of the storage devices. In other embodiments, it is noted that an RDF system may be active/active, in which each of the storage devices is accessible to one or more hosts for data writes (as R1 devices) and the other of the storage devices may, in each case, serve as an R2 device.
Data transfer among storage devices, including transfers for data replication or mirroring functions, may involve various data synchronization operation modes and techniques to provide reliable protection copies of data among a source or local site and a destination or remote site. In synchronous transfers, data may be transmitted to a remote site and an acknowledgement of a successful write is transmitted synchronously with the completion thereof. In asynchronous transfers, a data transfer process may be initiated and a data write may be acknowledged before the data is actually transferred to directors at the remote site. Asynchronous transfers may occur in connection with sites located geographically distant from each other. Asynchronous distances may be distances in which asynchronous transfers are used because synchronous transfers would take more time than is preferable or desired.
For both synchronous and asynchronous transfers, it may be desirable to maintain a proper ordering of writes such that any errors or failures that occur during data transfer may be properly identified and addressed such that, for example, incomplete data writes be reversed or rolled back to a consistent data state as necessary. Reference is made, for example, to U.S. Pat. No. 7,475,207 to Bromling et al. entitled “Maintaining Write Order Fidelity on a Multi-Writer System,” which is incorporated herein by reference, that discusses features for maintaining write order fidelity (WOF) in an active/active system in which a plurality of directors (i.e. controllers and/or access nodes) at geographically separate sites can concurrently read and/or write data in a distributed data system.
For further discussions of data ordering and other techniques used for synchronous and asynchronous data replication processing in various types of systems, including types of RDF systems and products produced by EMC Corporation of Hopkinton, Mass., reference is made to, for example, U.S. Pat. No. 8,335,899 to Meiri et al., entitled “Active/Active Remote Synchronous Mirroring,” U.S. Pat. No. 8,185,708 to LeCrone et al., entitled “Host Implementation of Triangular Asynchronous Replication,” U.S. Pat. No. 7,779,291 to Yoder et al., entitled “Four Site Triangular Asynchronous Replication,” U.S. Pat. No. 7,613,890 to Meiri, entitled “Consistent Replication Across Multiple Storage Devices,” and U.S. Pat. No. 7,054,883 to Meiri et al., entitled “Virtual Ordered Writes for Multiple Storage Devices,” which are all incorporated herein by reference.
A system operating with RDF techniques may use combinations of the above-noted operation modes. In implementations using, for example, both synchronous and asynchronous RDF operation modes, problems may occur in determining priority of writes. For example, a weighting system may be used to manage workload according to a polling mechanism for selecting an RDF group. An RDF group may be assigned a certain weight according to the length of its local RDF workload queue, which is an evaluation proportional to the workload of that group. Selecting the group for the next write may done in a pseudo-random fashion but controlled such that the tendency is to select a group that has a higher weight. For an example of managing workload according to a weighting system based on queue length, see U.S. Pat. No. 6,886,164 to Meiri, entitled “Selection of a Resource in a Distributed Computer System,” which is incorporated herein by reference. Because of the latency issues, priority may be given to synchronous transfers over asynchronous transfers using the weighting system. However, for an RDF system in which both synchronous and asynchronous transfers occur using the same RA, a simple or static weighting system may not efficiently service asynchronous transfers if synchronous transfers are repeatedly received and given priority.
U.S. Pat. No. 8,261,029 to Marshak et al., entitled “Dynamic Balancing of Writes Between Multiple Storage Devices,” which is incorporated herein by reference, discloses a system for dynamically balancing writes (and/or other input/output (I/O) requests) between multiple storage devices in which RDF groups may be assigned weights according to a dynamic priority parameter. The dynamic priority parameter provides the ability to control the weight of an asynchronous RDF group compared to that of a synchronous RDF group. For a mix of asynchronous RDF groups and synchronous RDF groups, a dynamic balance of write priorities between the two group types may be obtained by the system of Marshak et al.
It is noted that a computing environment, such as an RDF system, may need to process synchronous I/O requests having different priorities in addition to handling I/O requests on the basis of synchronous or asynchronous groupings. For example, for a host coupled to an RDF system, host synchronous I/O requests may have a higher priority than non-host synchronous I/O requests. Non-host synchronous I/O requests may include, for example, internal synchronous I/O requests of the RDF system and/or other types of non-host synchronous I/O requests that are not generated by the host. In a simple model for servicing synchronous I/O requests, the synchronous I/O requests may be serviced on a first-come-first-served basis. However, since host-synchronous (high priority) I/O requests may be driven by an application on the host, such requests may be sporadic in nature. In the case of two (or more) host-synchronous (higher priority) I/O requests, that may in some cases correspond to one another, intervening non-host synchronous (lower priority) I/O requests may be generated between the two or more host-synchronous (higher priority) I/O requests. Such intervening non-host synchronous I/O requests may undesirably tend to congest the computer network and hold resources necessary for execution of the higher priority request for periods of time, causing resource starvation for the higher priority requests and impacting host response times.
Accordingly, it would be desirable to provide a data storage system that addresses issues noted above involving efficient balancing of response times for servicing synchronous I/O requests having different priorities.